package com.wn.bank.access.api;

import com.wn.bank.access.api.fallback.TradeLogApiFallBack;
import com.wn.sddfp.common.model.dto.bank.BankCardAddDTO;
import com.wn.sddfp.common.model.dto.bank.BaseResult;
import com.wn.sddfp.common.model.dto.bank.SignatureDto;
import com.wn.sddfp.common.model.dto.borrow.BorrowSyncRecordVo;
import com.wn.sddfp.common.model.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @FeignClient
 * 1、定义feign的客户端
 * 2、value 指定服务提供者的服务实例名称
 *    path  设置所有的请求的前缀
 */

@FeignClient(
        value = "sddfp-bank-access-service",
        path = "/trade-log",
        fallback = TradeLogApiFallBack.class   //远程调用出现了异常 会执行 TradeLogApiFallBack 类下面的对应的方法
)
public interface TradeLogApi {
    /**
     * 绑卡生成交易记录 (对外暴漏的接口，也就是给客户端调用的接口)
     * 注意：这里的方法签名、路径、请求方式必须与服务提供者一致
     */
    @PostMapping("/bank/access/card")
    SignatureDto proxyBindCardLog(@RequestBody BankCardAddDTO bankCardAddDTO);

    @GetMapping("/bank/access/test01/{id}")
    Result test01(@PathVariable("id") Integer id);

    /**
     * 审核借款的数据同步
     *
     * @param borrowSyncRecordVo
     * @return
     */
    @PostMapping("/bank/access/sync/borrow")
    Result<BaseResult> syncBorrowRecord(@RequestBody BorrowSyncRecordVo borrowSyncRecordVo);

}